/*******************************************
  Jose Andres Lara Vecino

  Author       : $Author: cainlara@gmail.com $
  Last CheckIn : $Date: 2012-08-22 18:35:06 +0000 (Wed, 22 Aug 2012) $
  Revision     : $Revision: 100 $
*******************************************/

package gui.menu;

import generico.GenericoMenu;
import gui.accion.IniciarSesionAccion;
import gui.accion.SalirAccion;

import javax.swing.JMenuItem;
import javax.swing.JSeparator;

import mensaje.Mensaje;
import control.App;

/**
 * Menu archivo.
 * <P>
 * Este menu es el contenedor de los menu 
 * items de control en el aplicativo.
 * 
 * @author jose.lara 07.06.2012
 */
public class MenuArchivo extends GenericoMenu {
    private static final long serialVersionUID = 1L;
    
    private JMenuItem salirMenuItem             = null;
    private JMenuItem iniciarSesionMenuItem     = null;
    private SalirAccion salirAccion             = null;
    private IniciarSesionAccion iniciarSesion   = null;
    
    public MenuArchivo() {
        super();
        setText(Mensaje.getMensaje("MENU-ARCHIVO"));
        add(getIniciarSesionMenuItem());
        add(new JSeparator());
        add(getSalirMenuItem());
    }
    
    private JMenuItem getSalirMenuItem() {
        if(salirMenuItem == null) {
            salirMenuItem = new JMenuItem(getSalirAccion());
        }
        
        return salirMenuItem;
    }
    
    private SalirAccion getSalirAccion() {
        if(salirAccion == null) {
            salirAccion = new SalirAccion();
        }
        
        return salirAccion;
    }
    
    private JMenuItem getIniciarSesionMenuItem() {
        if(iniciarSesionMenuItem == null) {
            iniciarSesionMenuItem = new JMenuItem(getIniciarSesionAccion());
            iniciarSesionMenuItem.setEnabled(!App.getSesion().isIniciada());
        }
        
        return iniciarSesionMenuItem;
    }
    
    private IniciarSesionAccion getIniciarSesionAccion() {
        if(iniciarSesion == null) {
            iniciarSesion = new IniciarSesionAccion();
        }
        
        return iniciarSesion;
    }
    
    @Override
    public void actualizarItems() {
        getIniciarSesionMenuItem().setEnabled(!App.getSesion().isIniciada());
    }
}